OpenCL: A pArALLeL prOgrAmming StAndArd

نویسنده

  • Guochun Shi
چکیده

T he strong need for increased computational performance in science and engineering has led to the use of heterogeneous computing, with GPUs and other accelerators acting as coprocessors for arithmetic intensive data-parallel workloads.1–4 OpenCL is a new industry standard for task-parallel and data-parallel heterogeneous computing on a variety of modern CPUs, GPUs, DSPs, and other microprocessor designs.5 This trend toward heterogeneous computing and highly parallel architectures has created a strong need for software development infrastructure in the form of parallel programming languages and subroutine libraries that can support heterogeneous computing on multiple vendors’ hardware platforms. To address this, developers adapted many existing science and engineering applications to take advantage of multicore CPUs and massively parallel GPUs using toolkits such as Threading Building Blocks (TBB), OpenMP, Compute Unified Device Architecture (CUDA),6 and others.7,8 Existing programming toolkits, however, were either limited to a single microprocessor family or didn’t support heterogeneous computing. OpenCL provides easy-to-use abstractions and a broad set of programming APIs based on past successes with CUDA and other programming toolkits. OpenCL defines core functionality that all devices support, as well as optional functionality for high-function devices; it also includes an extension mechanism that lets vendors expose unique hardware features and experimental programming interfaces for application developers’ benefit. Although OpenCL can’t mask significant differences in hardware architecture, it does guarantee portability and correctness. This makes it much easier for developers to start with a correctly functioning OpenCL program tuned for one architecture and produce a correctly functioning program optimized for another architecture.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

FIR filtering and AES encryption with OpenCL 2.0

OpenCL has become a popular standard to leverage the unique power/performance opportunities found on heterogeneous systems. In this short contribution, we evaluate the latest parallel programming features supported in the OpenCL 2.0 standard. We explore using shared virtual memory and dynamic parallelism to accelerate two example applications.

متن کامل

Invitation to a Standard Programming Interface for Massively Parallel Computing Environment: OpenCL

Multicore/manycore architecture accelerates demand for a new programming environment to utilize the massive processors integrated in an LSI. GPU (Graphics Processing Unit) is one of the typical hardware environments. The programming environments on GPU are traditionally vendor-/hardware-specific, where complicate the management of uniform programs that access computing resources of the massivel...

متن کامل

Performance Analysis of GPU Memory Architectures with Standard Matrix-Multiplication in OpenCL

With the development of the uniform processor designs implemented in modern graphics processing units (GPUs) released by NVIDIA and AMD, the expansive development of parallel languages and frameworks allows us to create high performance parallel applications that exploit the architectural characteristics of these devices. Specifically, we look at the modern GPU memory hierarchy, the development...

متن کامل

SkelCL: Enhancing OpenCL for High-Level Programming of Multi-GPU Systems

The final publication is available at Springer via http://dx.doi.org/10.1007/978-3-642-39958-9_24. Abstract. Application development for modern high-performance systems with Graphics Processing Units (GPUs) currently relies on low-level programming approaches like CUDA and OpenCL, which leads to complex, lengthy and error-prone programs. In this paper, we present SkelCL – a high-level programmi...

متن کامل

Scalability and Parallel Execution of OmpSs-OpenCL Tasks on Heterogeneous CPU-GPU Environment

With heterogeneous computing becoming mainstream, researchers and software vendors have been trying to exploit the best of the underlying architectures like GPUs or CPUs to enhance performance. Parallel programming models play a crucial role in achieving this enhancement. One such model is OpenCL, a parallel computing API for cross platform computations targeting heterogeneous architectures. Ho...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010